package com.relytosoft.mizar.analyze.algorithm.base.service;

import com.relytosoft.mizar.analyze.base.entity.pojo.base.BaseAlgoControlReq;
import com.relytosoft.mizar.analyze.base.entity.pojo.base.BaseAlgoDataReq;
import com.relytosoft.mizar.analyze.base.entity.pojo.base.BaseAlgoStatusReq;

import java.util.List;

/**
 * UploadService
 *
 * @Author SunLi
 * @Date: 2022/5/16 13:45
 * @Version 1.0
 */
public interface UploadService<DataReq extends BaseAlgoDataReq,
        StatusReq extends BaseAlgoStatusReq,
        FaceControlReq extends BaseAlgoControlReq,
        StructureControlReq extends BaseAlgoControlReq> {
    /**
     * 接收上报数据
     *
     * @param dataReq
     * @return
     */
    Boolean receiveData(DataReq dataReq);

    /**
     * 接收上报状态
     *
     * @param statusReq
     * @return
     */
    Boolean receiveStatus(StatusReq statusReq);

    /**
     * 接受人脸布控数据
     *
     * @param controlReqs
     * @return
     */
    default Boolean receiveFaceControlData(List<FaceControlReq> controlReqs) {
        return true;
    }

    /**
     * 接受结构化布控数据
     *
     * @param structureControlReq
     * @return
     */
    default Boolean receiveStructureControlData(StructureControlReq structureControlReq) {
        return true;
    }
}
